Python3进阶之读取和写入yaml配置文件

您所在的位置:网站首页 python 读取写入 Python3进阶之读取和写入yaml配置文件

Python3进阶之读取和写入yaml配置文件

2024-01-08 17:23| 来源: 网络整理| 查看: 265

yaml是专门用来写配置文件的语言,简洁强大,远比JSON格式方便,yaml在python语言中有PyYAML安装包。

首先需要pip安装:pip install pyyaml

yaml基本语法规则:大小写敏感

用缩进表示层级关系

缩进时不允许Tab键,只允许使用空格

# 表示注释 python代码读取yaml文件 import yaml import os # 获取当前脚本所在文件夹路径 curpath = os.path.dirname(os.path.realpath(__file__)) # print(curpath) # 获取yaml文件路径 yamlpath = os.path.join(curpath, "cfgyaml.yaml") # open方法打开文件直接读出来 f = open(yamlpath, 'r', encoding='utf-8') cfg = f.read() print(type(cfg)) # print(cfg) # 用load方法转字典 d = yaml.load(cfg) print(type(d)) print(d) cfgyaml.yaml文件内容如下 # yaml中的数组,相当于python中的列表 - admin1: 123456 - admin2: 234567 - admin3: 345678 # yaml中的键值对,相当于python中的字典 # test1: # user: username # pw: 123456

用yaml模块写入字典嵌套字典这种复杂的数据,会出现大括号{},不是真正的yaml文件数据,可以用ruamel模块解决。

安装:pip install ruamel.yaml

使用方法跟yaml差不多,只是在使用dump方法多一个参数:Dumper=yaml.RoundTripDumper

python代码写入yaml文件 import os from ruamel import yaml # 将字典写入到yaml desired_caps = { 'platformName': 'Android', 'platformVersion': '7.0', 'deviceName': 'ASRNW1111111111' 'appPackage': 'com.tencent.com', 'appActivity': 'ui.LauncherUI', 'automationName': 'Uiautomator2', 'unicodeKeyboard': True, 'resetKeyboard': True, 'noReset': True, 'chromeOptions': {'androidProcess': 'com.tencent.com'} } curpath = os.path.dirname(os.path.realpath(__file__)) yamlpath = os.path.join(curpath, "cfgyaml.yaml") # 写入到yaml文件 with open(yamlpath, 'w', encoding="utf-8") as f: yaml.dump(desired_caps, f, Dumper=yaml.RoundTripDumper)

使用ruamel.yaml模块也能读yaml文件,使用方法相对之前的yaml.load方法多加了一个参数:Loader=yaml.Loader

如:

rea = open(yamlpath, 'r') a = rea.load() b = yaml.load(a, Loader=yaml.Loader) print(b)

看完点赞 ~养成好习惯,以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3